export default {
  floatAdd(a, b) {
    var c, d, e;
    if (undefined == a || null == a || "" == a || isNaN(a)) {
      a = 0;
    }
    if (undefined == b || null == b || "" == b || isNaN(b)) {
      b = 0;
    }
    try {
      c = a.toString().split(".")[1].length;
    } catch (f) {
      c = 0;
    }
    try {  
      d = b.toString().split(".")[1].length;
    } catch (f) {
      d = 0;
    }
    e = Math.pow(10, Math.max(c, d));
    return (this.floatMul(a, e) + this.floatMul(b, e)) / e;
  },
  
  floatSub(a, b) {
    var c, d, e;
    if (undefined == a || null == a || "" == a || isNaN(a)) {
      a = 0;
    }
    if (undefined == b || null == b || "" == b || isNaN(b)) {
      b = 0;
    }
    try {
      c = a.toString().split(".")[1].length;
    } catch (f) {
      c = 0;
    }
    try {
      d = b.toString().split(".")[1].length;
    } catch (f) {
      d = 0;
    }
    e = Math.pow(10, Math.max(c, d));
    return (this.floatMul(a, e) - this.floatMul(b, e)) / e;
  },

  floatMul(a, b) {
    var c = 0,
    d = a.toString(),
    e = b.toString();
    try {
      c += d.split(".")[1].length;
    } catch (f) {}
    try {
      c += e.split(".")[1].length;
    } catch (f) {}
    return (
      (Number(d.replace(".", "")) * Number(e.replace(".", ""))) /
      Math.pow(10, c)
    );
  },

  floatDiv(a, b) {
    var c,d,e = 0,f = 0;
    try {
      e = a.toString().split(".")[1].length;
    } catch (g) {}
    try {
      f = b.toString().split(".")[1].length;
    } catch (g) {}
    return (
      (c = Number(a.toString().replace(".", ""))),
      (d = Number(b.toString().replace(".", ""))),
      floatMul(c / d, Math.pow(10, f - e))
    );
  }
};
